<?php
class SuperquadraDAO extends GenericDAO  {

	function __construct() {
		$this->tabela["alteracao"] = array(	"id" 	=> 154,
											"nome" 	=> strtolower(substr(get_class(), 0, -3)));
	
		$this->tabela["consulta"]  = array(	"id" 	=> 160,
											"nome" 	=> "vw_" . strtolower(substr(get_class(), 0, -3)));
	}
	
	public function consultarPK($valor) {
	    $sql = "where id = :id";
	    $params['id'] = $valor;
	    return $this->consultar($sql, $params);
	}
	
	public function getProximoPlano() {
		$sql = "select coalesce(max(plano_codigo) + 1, 10101) codigo from vw_superquadra";
		$params = array();
		$res = $this->execQuery($sql, $params);
		return $res[0]['codigo'];
	}

	public function inserir($registro, $finalizarTransacao = true) {
		$res = null;
		if ($this->inserirRegistro($registro, $finalizarTransacao)) {
			$res['id'] = $this->ultimoId();
		}
		return $res;
	}
	
	public function excluir($id, $finalizarTransacao = true) {
		$pk['id'] = $id;
		$sql = "select concat(plano_codigo,'%') codigo from vw_superquadra where id = :id";
		$res =$this->execQuery($sql, $pk);
		
		$params['codigo'] = $res[0]['codigo'];
		$sqlplano = "delete from plano where codigo like :codigo";
		
		$sqlquadra = "delete from quadra where superquadra = :id";
		
		return $this->execSQL($sqlquadra, $pk, false) // exclui quadras da superquadra
			&& $this->excluirRegistro($pk, false) // exclui a superquadra
			&& $this->execSQL($sqlplano, $params, $finalizarTransacao); // exclui os planos gerencias da superquadra
	}
	
	public function alterar($registro, $finalizarTransacao = true) {
		$pk['id'] 		= $registro['id'];
		unset($registro['id']);
		return $this->alterarRegistro($registro, $pk, $finalizarTransacao);
	}
}
?>